<?php

/**
 * @author   Leen
 * @date     2016/05/19
 */
namespace App\Interfaces;

use Illuminate\Database\Eloquent\Collection;

interface DiscountService
{

    /**
     * 根据商品获取当前可用的限时折扣
     * @param int $goods_id      商品id
     * @param int $user_id       用户id
     * @return mixed
     */
    // public function getCanUseDiscountByGoodsId($goods_id, $user_id = '');

    /**
     * 根据商品id获取商品可用的最大的限时折扣
     * @param int $goods_id      商品id
     * @param int $user_id       用户id
     * @return mixed
     */
    public function getCanUseBiggestDiscountByGoodsId($goods_id);

    /**
     * 根据要购买的商品数组获取用户购买这些商品时可用的限时折扣
     * @param int $user_id      						用户id
     * @param array $buyGoods      						商品数组
     * @param int $current_discount_arr		已经选中的要使用的限时折扣以及该折扣要使用的商品数量 current_discount_arr = ['discount_id' => 1, 'goods_number' => 2]
     * @return mixed  可用的限时折扣
     */
    public function getUserCanUseDiscount($user_id, $buyGoods, $current_discount_arr=[]);

	/**
	 * 根据用户id和限时折扣id获取用户当前已经使用过该折扣的商品数量
     * @param int $user_id      	用户id
     * @param int $discount_id      限时折扣id
     * @return mixed  用户当前已经使用过该折扣的商品数量
	 */
    public function getUsedGoodsAmountByUserIdAndDiscountId($user_id, $discount_id);

	/**
	 * 增加用户限时折扣活动使用的商品数量
	 * @param [int] $user_id  		用户id
	 * @param [int] $discount_id 	限时折扣id
	 * @param [int] $amount   		商品数量
     * @return mixed
	 */
	public function addUserDiscountUseGoodsAmount($user_id, $discount_id, $amount);

	/**
	 * 根据限时折扣id获取限时折扣信息
	 * @param  int    $discount_id [description]
	 * @return [type]              [description]
	 */
	public function getDiscountInfoByDisncountId($discount_id);

	/**
	 * 判断用户的商品是否可以使用指定的限时折扣
	 * @param  [int]  $user_id     [用户id]
	 * @param  [int]  $goods_id    [商品id]
	 * @param  [int]  $discount_id [限时折扣id]
	 * @return boolean              [description]
	 */
	public function isJudgeDiscountCanUse($user_id, $goods_id, $discount_id);


}//end class DiscountService